perm filename ERRATA.TXT[TEX,DEK]13 blob
sn#555959 filedate 1981-01-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 This is a list of all errors in the September 1978 TEX user manual that
C00009 00003 Extensions to TEX made since the November printing of the manual:
C00014 00004 Corrections noted since the November 1978 printing:
C00019 00005 Important changes l∂de to TEX on February 25, 1979:
C00023 00006 New extensions to TEX subsequent to the April printing of the manual.
C00027 00007 Changes made subsequent to the Digital Press edition of the manual (Dec 1979)
C00036 00008 TEX 80: the last extensions to TEX before 1990
C00052 00009 Changes since October 1, 1980 (when a hardcopy version of this ERRATA file
C00067 ENDMK
C⊗;
This is a list of all errors in the September 1978 TEX user manual that
were known on November 4, 1978. It also includes a few things that were
omitted in September. All these changes (and only these) have been
incorporated into the November 1978 manual.
Title page, change date to "November 1978 (second printing)" and change
"draft" to "drafts" in the first line of the footnote.
Page 26, line 4, delete "of the second paragraph".
Page 29, line 13, change "later.)" to "later. A list of control sequences for
special symbols appears in Appendix F.)
Page 40, line 15
(one centimeter equals 26.600 Didot points)
Page 32, line 18, change "11" to "12".
Page 59, line 4, insert a ")" after this line.
Page 61, line 28, insert a "$" before the pound sterling sign
Page 61, line 30, change ", and" to ", ``$\$$'', and"
Page 82, line 13, append this to the paragraph: "Another case is a formula
like n/log n, where a negative thin space has been inserted after the /.)".
Page 102, line 6, append this to the paragraph: "The control sequences
\vcenter and \vtop are also useful for box positioning (see Chapter 26)."
Page 106, line 17, change "instead of ``$\ctr{#}$''" to "instead
of ``\ctr{$#$}''".
Page 106, last three lines, change "processed; you might ... appropriate \def."
to "processed.".
Page 135, change the first 7 lines to the following:
based only on the current style, regardless of the sizes of numerator and
denominator.
/ \vcenter \
*< >{<vlist>} Append a centered or top-adjusted box.
\ \vtop /
The specified vertical list is constructed in restricted vertical mode, then
it is \vjusted and the resulting box is moved up or down so that (\vcenter)
it is centered vertically just as large delimiters are, or (\vtop) the
baseline of the topmost box in the vertical list coincides with the baseline
of the formula. Then TEX resumes its activities in math mode.
Page 158, line 16, change ". (We" to ".\xskip (We".
Page 158, new paragraph inserted before the 4th-last line on this page:
* Within a paragraph, type ``\xskip'' before and after parenthesized
sentences. (For example, there is an \xskip in the paragraph you are now
reading, and in algstep E1 above.)
(The convention just explained has also been introduced into the entire TEX
manual.)
Page 159, replace last two paragraphs by one paragraph, to wit:
If the exercise contains a ``hint'' within a paragraph, you type
``\xskip[{\sl Hint:} ''; as usual, there should be no space before \xskip.
Page 162, line 4, change "Addison-Wesley's" to "the publisher's".
Page 165, line 15, change "4.5" to "4.625".
Page 165, line 23, change "4" to "4.25".
Page 182, line 6, change "or XYZages" to "XYZages, or XYZest"
Page 182, lines 14 and 15, change "-xe, or -xye, where x and y" to
"-Xe, or -XYe, where X and Y"
Page 182, line 18, new sentence appended to this paragraph:
"Similarly, final syllables of the form -Xed or -XYed (except -ized)
are also disregarded."
Page 185, line 22, delete "guess-work"
Page 186, line 7, change "prob-a-bil-ity" to "prob-abil-ity".
Page 187, index entry for Bibliographic..., change "14" to "15".
Page 189, index entry for \deg, add page 164.
Page 195, delete 15th line in left-hand column.
Page 195, index entry for \spose, add page 39.
Page 196, index entry for \vcenter, add page 102.
Page 196, new index entry:
\vtop (make <vlist> box using top baseline), 102, 135.
Page 196, index entry for \xskip, change "159" to "158--160".
Page 196, index entries for \yskip and \yyskip, change "158--159" and "158"
to "159".
Page 197, index entry for \$, add page 61.
Page 198, the TEX logo is too small, each time it appears on this page.
Extensions to TEX made since the November printing of the manual:
1. Several new <dimenparam>s have joined \hsize, \vsize, \topbaseline, etc.,
namely \lineskiplimit, \mathsurround, and \varunit.
By typing "\lineskiplimit <dimen>" you specify a dimension p such that
\lineskip glue is used as the interline glue if and only if x-h-d < p, in
the notation of Chapter 15.
By typing "\mathsurround <dimen>" you specify an amount
of blank space to be inserted at the left and right of any formula
embedded in text (i.e., formulas delimited by $ and $).
By typing "\varunit <dimen>" you specify the current value of a
variable-size unit; the code "vu" denotes such relative units in a <dimen>
specification. For example, after you define "\varunit 2pt", a <dimen>
of "7vu" would stand for 14 points. When TEX begins, the values of
\lineskiplimit, \mathsurround, and \varunit are 0pt,
0pt, and 1pt, respectively.
2. There is a new option to \advcount: If you type "\advcount <digit> by
<number>" the specified counter is increased by the specified number. (When
the "by" option is omitted, the counter is increased by plus-or-minus one as
presently.) For example, "\advcount 0 by - \count 1" subtracts counter 1 from
counter 0.
3. The control sequence \unskip can be used in horizontal mode (or restricted
horizontal mode) to delete one glob of glue, if this glue was the last item
added to the horizontal list. The main use of this is to remove an unwanted
space that may have just appeared. For example, in a macro expansion the string
"#1\unskip" denotes parameter #1 with a final blank space (or other glue)
removed, if #1 ends with a blank space (or other glue).
4. Typing "\uppercase{<token list>}" in horizontal mode will change all
lower-case letters of the token list into upper case. (But not the letters of
control sequences.) Similarly, "\lowercase{<token list>}" changes upper-case
letters into lower case.
5. Typing "\xdef<control sequence>{<result text>}" is like
"\gdef<control sequence>{<result text>}" except that definitions in the result
text are expanded. For example, "\xdef\z{\z\y}" will append the current result
text of macro \y to the current result text of macro \z. You can also use \xdef
to expand \counts (as well as \topmarks, etc., in \output routines).
6. The new control sequence \ifpos is analogous to \ifeven; the
\else code is evaluated only if the specified counter is zero or negative.
For example, you can use \ifpos to test if a counter is zero in the
following way:
\def\neg#1{\setcount#1-\count#1}
\def\ifzero#1#2\else#3{\ifpos#1{#3}\else{\neg#1
\ifpos#1{\neg#1 #3}\else{\neg#1 #2}}}
7. A new unit has been added: "em" equals one quad in the current font.
Corrections noted since the November 1978 printing:
Page 14, line 15, change "TEXes" to "TEXs".
Page 22, line 7, change "reading from, if any." to: "reading. (Don't do this
unless there is such a file.)"
Page 56, line 14, change "n≥2" to "n≥1".
Page 83, line 3, change "it is reclassified as Ord." to "Bins are reclassified
as Ords, from left to right."
Page 101, append a new sentence to the second dangerous bend:
However, all other parameters affecting the setting of the boxed paragraph
(the baseline skip, raggedness, etc.) should be set up {\sl before} the
\hbox par.
Page 114, lines -2 and -1, change "\hjsut" to "\hbx" (thrice)
Page 118, line 23, change "final page is" to "page is finally"
Page 127, line 21, change "final page is" to "page is finally"
Page 138 (AMS version), line -4, move "nother example." one space left.
Page 140, line -13, change "Extra ⊗" to "Extra alignment tab".
Page 145, a new error message:
Warning: Long input line has been broken.
Your input file contained a very long sequence of characters between
carriage returns. TEX arbitrarily broke it after 150 characters.
Page 150, lines 4-6 of the code in answer 23.2 should be:
\def\lead{ \leaders\hrule\hfill\ }
\hbox to 4.5in{\ifeven0{\:b\count0\lead\topmark}
\else{\:b\topmark\lead\count0}}}
Page 152, replace lines -8 and -7 by:
\def\spose#1{\hbox to 0pt{#1\hskip0pt minus10000000pt}}
Page 165, replace the various definitions of "\9" by the single
definition "\def\9{\hskip .5em}", putting the latter just before the definition
of \xskip.
Page 166, in the definition of \dimsectionbegin:
Change "\yyskip" to "\sectionskip".
Page 178, the paragraph of text, delete "But watch out: ... Appendix B.)"
Page 181, line 18, change "word," to "word, and".
Page 184, line 5, add "gold-en".
Page 185, line 21, change "ex-press-ible" to "ex-press-*i*ble".
Page 186, line 11, change "com-put-a-*bil-ity" to "com-put-a*bil-ity".
Pages 187-197, "see" and "see also" are in the wrong font in the AMS
version (Xerox software bug!)
Page 190, \Fscr entry should be on a line by itself.
Page 190, \halign entry, change "135" to "136".
Page 191, Knuth entry, change "14" to "15".
Page 194, \Qscr entry is not in alphabetic order.
Page 194, add "Roman numerals, 111."
Page 195, Spacing in math formulas,
tables, 81, 83.
Page 196, last entry in v's has the "vu" entry run into the previous one.
Page 196, entry for \xdef is out of alphabetical order.
Page 197, add: "' (octal number), 34."
Important changes made to TEX on February 25, 1979:
The American Math Society will be printing copies of the TEX manual
with all the above bugs cleaned up, and on this occasion it was the
last chance to change TEX before changes became unwieldy. Thus, Knuth
decided to make a couple improvements, to wit:
1. The control sequences \hjust and \vjust are henceforth changed to \hbox and
\vbox. (This should cause you little or no trouble with MSs already typed,
simply insert "\def\hjust{\hbox}\def\vjust{\vbox}" at the beginning of your
file. The basic.tex file already has this, so if you are using basic format
no change is necessary.)
2. The old kludge about \hjust to ...{ } making a boxed paragraph if the
contents were too large has been replaced by a far better convention.
This change will make TEX balk on some manuscripts it previously handled
(e.g. it might now say "Overfull box, 1138.74 points too wide"), but
only a few changes will really be necessary in your files.
Here are the new rules (replacing the previous rule on page 101):
* You can also get the effect of paragraphing and line-breaking with
\hbox, in the following way: If you give the instruction "\hbox par<dimen>",
TEX will use its paragraph line-breaking routine to convert the horizontal list
into one or more lines of the specified width. In this case the \hbox will
actually result in a box formed from a {\sl vertical} list of horizontal lists
of the desired width. The boxed paragraph that you get is not indented.
For example, the box you are now
reading was made by typing "\hbox
par 156pt{For example, the box
... five lines.}" and TEX broke
it into five lines.
* If you specify hanging indentation with such a boxed paragraph, it applies
to the box and not to the paragraph (if any) containing the box. For
example,
\hbox par 200pt{\hangindent 10 pt <text >}
will put the specified text into a box 200 points wide, where all lines after
the first are indented by 10 points at the left.
New extensions to TEX subsequent to the April printing of the manual.
\chcode has been extended to give you the opportunity to change TEX's math mode
conversion (Appendix F8). Type "\chcode <ascii code plus '200> ← '<type><char>"
where <type> is 0,1,2,3,4,5,6 for Ord,Op,Bin,Rel,Open,Close,Punct,
respectively, and <char> is the three-octal-digit code.
For example, a colon (ascii code '072) is normally treated by TEX as Ord'072,
according to Appendix F8. It turns out this is usually a mistake in computer
science papers, it should rather be Rel'072 (treated as a relation box with
respect to spacing in formulas, see Chapter 18.4). You can get this by
typing "\chcode'272←'3072". (Then formulas like "$x:=x+1$" and "$f:X\to Y$"
will come out properly.)
Three new units of measure are allowed: wd<digit>, ht<digit>, dp<digit>,
denoting the width, height, and depth of a saved box. For example, if you
type "\save5\hbox{k}\hbox to 2 wd5{}" you get an empty box that is twice the
width of the letter k in the current font.
You can use a single letter where TEX expects a <number>; the result is
the ascii code of that letter. For example, the definition of \max in
Appendix B would now more properly be
\def\max{\mathop{\char m \char a \char x}} .
This works only for letters (characters of type 11, see Chapter 7).
The new control sequence \firstmark is allowed in output routines. It
equals the first mark on the page, if any, otherwise it has the
common value of \topmark and \botmark.
The new control sequences \ifvmode, \ifhmode, \ifmmode (analogous to other
\if's) select text based on the current mode.
The new control sequences \hfil, \hfilneg, \hss are short for
\hskip 0pt plus 100000pt, \hskip 0pt plus -100000pt,
\hskip 0pt plus 100000pt minus 100000pt, respectively,
and they take less TEX memory space. The vertical analogs are \vfil, \vfilneg,
and \vss. Examples of use: "\vfil\penalty0\vfilneg" specifies an optional
page break, with a "short" page if the break occurs; "\penalty1000\hfilneg\ "
at the end of a paragraph will force the last line of the paragraph to be
right justified (it cancels the paragraph-fill glue supplied automatically by
TEX).
Control sequences of any length are now remembered in full; the seven-letter
truncation mentioned in Chapter 3 no longer happens.
Changes made subsequent to the Digital Press edition of the manual (Dec 1979)
Page 26, line -8, should be
\hsize 1 in \jpar 1000000 \ragged 1000
Page 27, lines 6 and 7, should be
...trline #1->\hbox to size{\hss #1
\hss }
Page 27, lines 14 and 15 are replaced by a single line
\hbox to size{\hss#1\hss}
Also delete "and followed" from line 19, and change "\hskip etc." on line 21 to
"\hss }".
Page 39, line -9, change "1.667pt" to ".33ex";
on line -7, change "2.5pt" to ".5ex";
and replace lines -6 through -4 by: "(This is for Computer Modern fonts. Other
font designs may require different positioning; you will probably be able to find
somebody who has worked out control sequences that you can use for any necessary
accent on any particular alphabet.)"
Page 40, another new unit
ex One "xheight" of space in the current font
Page 41, add a new sentence after "devices." on line 13:
If you want to avoid this inflation factor, you can say
"true" just before the unit; e.g., "4truein". (No space after "true".)
Page 50, line 7 should say
100000 pt, which is about 115 feet;
and change "1000cm" to "100000pt" on lines 9 and 10.
Page 92, line 12, change "formula is placed flush left" to:
formula is centered between the left margin and the equation number, unless glue
appears at the beginning of the formula; if such glue has been explicitly specified,
it is placed flush left
Page 95, the two-line displays on this page should have had 2pt extra
space between the lines.
Page 99, line 1, "within" should be "with"
Page 99, line 16, delete the sentence "The dimensions you specify should not
be negative."
Page 102, line 4, change to
\def\TEX{\hbox{\:aT\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
Page 116, line -3, insert "or \ " before the comma.
Page 120 and 129, add a new entry to the list of internal parameters:
10 dumplength 500 Appendix X
Page 142, lines 12-14, replace "But be careful: ... just now." by:
Remember that blank space after the name.
Page 151, use simpler definitions for \rjustline and \ctrline:
\def\rjustline#1{\hbox to size{\hss #1}}
\def\ctrline#1{\hbox to size{\hss #1\hss}}
Page 152, a new definition of \twoline replaces the old:
\def\twoline#1#2#3{\vbox{\hbox to size{$\quad\dispstyle{#1}$\hfill}
\vskip#2\hbox to size{\hfill$\dispstyle{#3}\quad$}}}
Also we simplify the definitions of \chop and \spose:
\def\chop to#1pt#2{\save0\hbox{$\dispstyle{#2}$}\hbox{\lower#1pt\null
\vbox to 1ht0{\box0\vss}}}
\def\spose#1{\hbox to 0pt{#1\hss}}
Page 163, line 16, put "}" after "<last line>\cr"
Page 170, ...The same codes are used for slanted roman fonts like cms10, and
for text italic fonts like cmti10.
Page 171, line 3, "except for \b, \l, \o, \t, \H, and"
Page 171, line 7, change the "except for" list to include underscore, and exclude
the less-than-or-equal-to and greater-than-or-equal-to signs.
Page 171, the typewriter type code now has an underline in position '032,
suitable for making less-than-or-equal-to and greater-than-or-equal-to signs
from < and >. Position '033 is the German ss as on page 170.
Page 172, delete the sentence "The same codes apply...manual)."
Page 172, codes '134, '136, '137 become undefined.
Pages 184-185, delete these words from the exception dictionary (since it turns
out they aren't hyphenated badly after all): harangue, meringue, tongue,
senseless, morgue, torque, unsearchable.
Page 186, new special exceptions: cat-e-go-ry de-vel-op prob-lem-atic
pro-gram-ming ref-er-enc*e
Page 188r, cmti10, change "172" to "170". Also delete the entry for cmu10.
Page 188r, add pp. 116 and 201 to the Control space entry.
Page 189r, new entry: Dump length, 201.
Page 190l, add pp. 116 and 201 to the Escape space entry.
Page 190l, new entry: \ETC, 201.
Page 190l, delete "Footnotes, 164."
Page 195r, add p. 102 to the "TEX logo" entry.
Page 196l, new entry: true, 41.
Page 196r, the \vfilneg entry, put ")" after "\vfil".
Page 197l, add pp. 116 and 201 to the "\ " (escape space) entry.
Page 201, last line, Chapter 2 should be Chapter 3.
Page 201, new features:
13. You can now use up to 64 different fonts (the 64 codes on page 14 give
64 distinct possibilities).
14. New one-character control sequence feature: If you use \chcode to change
the code of a character to type 13 (see page 32 of the manual... previously
code 13 was illegal), TEX will treat it as if it were immediately preceded by
your escape character. For example, suppose you want to type several
left-justified lines in a row. Here's an "easy" way to do this by redefining
code '15 (which is a carriage-return):
\chcode'15←13 \def
{\par}
the first line
the second line
\chcode'15←5
The effect will be the same as
the first line\par
the second line\par
after which carriage-returns are back to normal again. Similarly, \chcode'40←13
will change spaces into escape-spaces.
Actually there is one important difference between single-character control
sequences and ordinary ones: Blank spaces are not ignored after
single-character control sequences. (TEX is in "state M" after reading them,
cf. pp. 30-31.)
15. \leqno is analogous to \eqno except that the equation number is placed at
the left.
16. If you see "\ETC" at the end of a token list being displayed by TEX
(e.g., an <argument> in an error message), that token list is more than 500
characters long. This number 500 can be changed using \chpar10←<desired value>.
TEX 80: the last extensions to TEX before 1990
Here are some new primitives that seem to enhance the macro-writer's job, as
well as some final cleanups being made to the language before it is frozen
and widely described in PASCAL implementation.
1. \font <fontcode>=<filename> AN INCOMPATIBLE CHANGE!
(Allowed in any mode.) This should precede your first use of that font code.
For example,
\font a=cmr10
now appears in file basic.tex. If this font code has already been defined,
TEX will give an error message unless the file name is the same. (In the SAIL
versions of TEX, no error message will be given if this is a pre-loaded font
code, because the SAIL runtime routines forget all strings at the beginning
of the program and TEX doesn't know the names of the preloaded fonts. Thus you
must still be careful not to redefine the font codes used in Appendix B.)
You should still use \: to select the current font, since \font doesn't do
that.
If you refer to a font code (with \: or \mathrm, etc.) that has not yet been
defined, the error message "! Undefined font code." occurs. To recover, TEX
will expect to see a font file name (possibly preceded by = or ←); so you
can just hit carriage-return after this error message if you want the old
(pre-\font) conventions of TEX.
2. \copy <digit>
(Allowed wherever TEX expects a <box>.) This is just like \box <digit> except
that the value of \box <digit> is not reset to null. For example,
\save1\copy0
makes \box1 a copy of \box0.
3. \unbox <digit>
(Allowed in vertical or horizontal mode but not math or display math mode.)
The contents of \box <digit> are "unglued" and appended to the current vertical
or horizontal list. In horizontal mode, the space factor is set to 1; in
vertical mode, no baseline correction will be made to the following box. The
contents of \box <digit> are reset to null. For example,
\save1\hbox{\unbox1\box0}
appends \box 0 to the previous contents of \box 1 and destroys \box 0.
Note: You can't \unbox an \hbox in vertical mode or a \vbox in horizontal mode.
The potential uses of \unbox to produce multi-column format with balanced
columns are somewhat frightening--they might open Pandora's box.
4. \open <digit>=<filename>
(Allowed in any mode.)
This specifies a file to which your TEX program will be able to send characters
as output. Up to ten such files may be open at once. If the <digit> you specify
was previously used to open a file, that file will be closed immediately, so
be careful. The purpose of \open is to enable nice macro packages to be written
for indexes, tables of contents, cross-references, etc.
5. \send <digit>{<mark text>}
(Allowed in any mode.) As with \mark, all macros in the given text will be
expanded when TEX first sees this \send instruction, but \counts are not
expanded, nor are the names of control sequences following \def or \xdef or
\gdef. The text will eventually be written on the open file corresponding
to <digit> (or on your terminal and on errors.tmp if no such file is open),
at the time of output; at that time, \counts and \topmarks, etc. are expanded.
For example, suppose you say
... Let us define a tree{\send 5{Tree, \count0.}} as ...
in some paragraph. The text "Tree, \count0." is invisibly attached to the word
"tree"; and if \count0 equals 25 when the formatted page containing this word
is output, the string "Tree, 25." will be sent (followed by <carriage-return>
and <line-feed>). If TEX control sequences appear in the text to be output, the
result is the same as you get when lists of tokens are displayed in TEX
error messages.
Here's another example. Suppose you have said
\open 5=refs.tex
and at some later point you say when \count3 = 21
\xdef\cv{\count3}
\send 5 {\def\tarj{\cv}}
\advcount3
The result is to send "\def \tarj {21}" to file refs.tex, and to advance
\count3 to 22. Your input file could say "\input refs" near the beginning; then
the next time to TEX your file, a reference like "[\tarj]" will become "[21]".
The actual sending takes place when the page containing the \send gets output;
in this case \xdef was used to send the value of \count3 before it advanced.
6. \ifdimen <dimen> <relation> <dimen> {<true text>} \else {<false text>}
(Allowed in any mode.) Here <relation> is any of the three symbols <, >, =.
For example,
\ifdimen .5wd3 > 2em{a}\else{b}
yields "a" if half the width of \box3 exceeds two ems in the current font,
otherwise it yields "b".
7. \parval<number> and \codeval<number>
can be used whenever TEX is expecting a <number>; they specify the current
value of a TEX parameter or code (the values that are changed by \chpar and
\chcode).
8. \linebreak in horizontal mode forces a line break but not a page break
(so it's like half of \eject). \pagebreak in horizontal mode forces a page
break after the line that contains it, but not a line break (so it's like the
other half of \eject).
9. \let <control sequence> = <control sequence>
(in any mode) makes an alternate name valid for the present meaning of the
control sequence on the right. For example,
\let\usefont=\:
makes it possible to redefine the control sequence \: (for example if you want
to use : as a one-character control sequence). And
\let\finishpar=\par
\def\par{\finishpar\hangindent 40pt}
sets up hanging indentation after all paragraphs (including those terminated
by double-blank lines).
10. \mskip <dimen> [plus <dimen>] [minus <dimen>]
in math mode gives glue that varies with the current style. The dimensions
must be given in terms of a new unit "mu" that is allowed only with \mskip.
One mu is 1/18 of a \quad in the current style. Thus, for example,
\mskip 5mu plus 5mu
gives the spacing of a "thick space" in display style (cf. p. 81).
11. New parameters for things that used to be frozen into the code:
\chpar11="radsign", the 18-bit code that will be used for \sqrt
(same format as used in \left\char, see p. 79). Default
is '560760.
\chpar12="rfudge", 1000 times the magnification factor used in
computing "true" dimensions. Default is 1301 (XGP),
1100 (Dover), 1000 (at Stanford when we get rid of the XGP).
The output routine might also look at this parameter to scale
the output, although this isn't implemented yet and the desired
scale will probably be indicated by a spooling command in most
cases.
\chpar13="adjpen", penalty for adjacent lines being more than one step
apart in the sequence (shrunk at least 50%, near normal,
stretched at least 50%, stretched at least 100%). As in the
case of double-hyphenation (\chpar3), you give the square of
the desired penalty. Default is 3000.
\chpar14="loose", causes paragraphs to be set this many lines longer
than the optimal number (if you want to avoid widow lines in
straight text), if possible. For example, \chpar14←1 makes
subsequent paragraphs a line longer; \chpar14←-1 makes them a
line shorter (if there's a way). Default is, of course, 0.
\chpar15="jjpar". The new TEX justification routine tries first to
break lines in a paragraph with no hyphenations, using jjpar
instead of jpar to ferret out unfeasible breaks. If this fails,
or if "loose" is nonzero, another attempt is made, trying all
possible hyphenations, and using jpar. Default is 2. (A high
value makes TEX accept badly stretched lines before trying to
hyphenate.)
\chpar16="uchyph". If nonzero, TEX will attempt to hyphenate words
containing upper case letters, using the algorithm of
Appendix H. Default is 0.
\chpar17="exhyph". The penalty for breaking after an explicit hyphen or
dash (see rule e on p54). Default is 50.
\chpar18,19,20, reserved for communication with special extensions
in private versions of TEX.
12. New glue parameters in addition to \baselineskip, etc.:
\specskip <digit>, for any type of glue that you want
to use often. This glue is accessible in any mode by writing
\skip <digit>; it saves internal memory space in TEX.
\spaceskip, if nonzero will be used for spaces instead of the values
from the current font. If you say \spaceskip .3em plus .4em,
the meaning of "em" at the time \spaceskip appears is used (it
won't change when the em changes).
\xspaceskip, like \spaceskip, but this is the glue used for spaces
following periods, question marks, exclamation points (i.e.
space factor 3).
\parfillskip, is the glue automatically inserted at end of each
paragraph. This is the only \...skip parameter that is
initially nonzero; it is initialized to \hfil. (At paragraph
end, TEX removes the last item of the current horizontal list
if it is glue, under the assumption that it was the space that
is scanned before a blank line or before $$ causes the
line-breaking routine to start. Then \penalty1000 and the
current \parfillskip glue are appended.) By giving this
parameter nonzero space and controlling its stretchability and
shrinkability, you can keep the final lines of your paragraphs
from being too empty or too full.
13. \parshape n i1 l1 i2 l2 ... in ln
where n is an integer and each ij or lj is a <dimen>, takes precedence
over hanging indentation (of which it is a major generalization). The
first n lines of each subsequent paragraph will be of the specified
lengths and will have the specified indentations; lines after the nth
will use the specifications for line n. To shut this off, type
\parshape 0. (This feature will not work sensibly in connection with
displayed equations, since TEX considers a displayed equation as if it
breaks the paragraph into separate paragraphs.)
Note: A technical paper discussing all these bells and whistles of line
breaking is being prepared by Knuth and Plass for publication in SOFTWARE
Practice & Experience.
14. \spacefactor n, where n is an integer, can now be used in horizontal mode
to set the value of the space factor to n/100. Previously a user had no way to
override TEX's automatic conventions for this number.
Changes since October 1, 1980 (when a hardcopy version of this ERRATA file
was printed by AMS):
* Page 8, the display at the bottom of the page was lost, it should say \|_|
(note that |_| is the only way I can type that space symbol in this file).
* Page 19, line -4, change "\vskip 1in" to "\topspace 1in". And change
the wording of page 20 so that it says that \topspace gives you space at the
top of a page, \vskip gives space elsewhere (but \vskip is deleted when it
appears at the top of any page). The control sequence \topspace is now
defined in basic.tex; put "\def\topspace{{\hrule height0pt}\vskip}" in
Appendix B, and make an index entry for \topspace.
* Page 178, a new binary relation \heqv (Hardy equivalence symbol) now lives
in position '067 of the symbols fonts.
* Magnified printing and \chpar12:
It is sometimes valuable to be able to control the magnification factor at
which documents are printed. For example, when preparing document masters
that will be scaled down by some factor at a later step in the printing
process, it is helpful to be able to specify that they be printed blown up by
the reciprocal factor. There are several new features in TEX to allow for
greater ease in the production of such magnified intermediate output.
TEX should be thought of as producing as output a "design document": a
specification of what the final result of the printing process should look
like. In the best of worlds, this "design document" would be constructed as
a print file in a general and device independent format. Printing a
magnified copy of this document for later reduction should be viewed as the
task of the printer and its controlling software, and not something that TEX
should worry about. But real world constraints force us to deviate from this
model somewhat.
First, consider the plight of a TEX user who plans to print a document
magnified by a factor of two on a printer that only handles 8.5" by 11"
paper. In order to determine an appropriate \hsize and \vsize, this user
will have to divide the paper dimensions by the planned magnification factor.
Since computers are so good at dividing, TEX offers this user the option of
setting the "magnification" parameter to 2000, warning TEX of the anticipated
factor of 2 blow up, and then specifying \hsize and \vsize in units of
"truein" instead of "in". When inputting a "true" distance, TEX divides by
the scale factor that "magnification" implies, so as to cancel the effect of
the anticipated scaling. Normal units refer to distances in the "design
document", while "true" units refer to distances in the magnified printer
output.
Secondly, some existing print file format and printer combinations have no
current provision for magnified printing. A Press file, for example, uses
absolute distances internally in all positioning commands, and Press printers
treat these distances as concrete instructions without any provision for
scaling. There is a program that takes a Press file and a scale factor as
input and produces as output a new Press file in which all distances have
been appropriately scaled. But it is inconvenient to be forced to use this
scaling program on a regular basis. Instead, the Press output module of TEX
chooses to scale up all distances by the "magnification" factor when writing
the output Press file. Thus, the Press files that TEX writes are not
representations of TEX's abstract "design document", but rather
representations of the result of magnifying it by the factor (\parval12)/1000.
On the other hand, the DVI files written by other versions of TEX containing
normal units of distances, and the software that translates DVI files to
instructions that drive various output devices will do the magnification
by themselves, perhaps even using a magnification that was not specified
in the TEX source program; if the user has not specified "true" dimensions,
his or her DVI output file will represent the design document regardless of
magnification.
Caveat: Due to the manner in which the current implementation of TEX writes
Press files, it is not permissible to change the value of parameter 12 in the
middle of a TEX run. If you want to produce magnified output, you should
reset parameter 12 once very early in your document by using the \chpar12
control sequence, and from then on leave it alone. Another Caveat below
discusses the situation in more detail.
* Magnified fonts, an extension to \font:
The magnification mechanism has been extended to include font specifications
as well: in order to print a document that is photographically magnified, it
is essential to use magnified fonts. A font is specified by the "\font"
control sequence, which now has the syntax
"\font <fontcode>=<filename> at <dimen>".
The "at" clause is optional. If present, the dimension specified is taken
as the desired size of the font, with the assumption that the font should be
photographically expanded or shrunk as necessary to scale it to that size
times the magnification factor specified by parameter 12. For example,
the two fonts requested by the control sequences
"\font a=CMR10 at 5pt" and "\font b=CMR5 at 5pt"
will look somewhat different. Font a will be CMR10 photographically reduced
by a factor of two, while font b will be CMR5 at its normal size (so it should
be easier to read, assuming that it has been designed well).
The dimension in a font specification can use any units, either standard or
"true". The interpretation of "true" here is identical to its interpretation
in the specification of any other distance: asking for a font "at 5pt"
requests that the font be 5 points in size in TEX's "design document", while
asking for a font "at 5truept" requests that the font be 5 points in size
after the scaling implied by the "magnification" factor.
If the "at <dimen>" clause is omitted, TEX defaults the requested size to the
design size of the font, interpreted as a design (non-"true") distance.
Thus, the control sequence "\font a=CMR10" is equivalent to the sequence
"\font a=CMR10 at 10pt", assuming that the designer of cmr10 has indeed
told TEX that cmr10 is a 10-point font.
Caveat: This extension allows the TEX user to request any magnification of
any font. In general, only certain standard magnifications of fonts will be
available at most printers. The user of TEX at any particular site must be
careful to request only those fonts that the printer can handle.
Caveat: As mentioned above, you shouldn't change the value of parameter 12
in the middle of a run. TEX uses the value of parameter 12 in the following
three ways: (i) Whenever the scanner sees a "true" distance, it divides
by the current magnification. (ii) At the end of every page, TEX's output
module may scale all distances by the current magnification while converting this
page to format for an output device. (iii) At the very end of the TEX run,
the output module uses the current magnification to scale the requested sizes
of all fonts. Given this state of affairs, it is best not to change
parameter 12 once any "true" distance has been scanned and once any page
has been output.
* Page 40, there are two new units of distance:
bp "big point" (one inch equals exactly 72 "big points")
mi mica (one millimeter equals 100 micas)
* A new feature to solve the `first footnote on a page' problem at last!
\topsep{<restricted vertical mode stuff>}
and \botsep{<restricted vertical mode stuff>}
will insert their `stuff' between all \topinserts or \botinserts on a page
and the text on that page, unless no insert is present. For example,
suppose a page has two \topinserts and one \botinsert, then you get
\topinsert # 1
\topskip glue
\topinsert # 2
\topskip glue
\topsep
the text of the page
\botsep
\botskip glue
\botinsert # 1.
A \topsep or \botsep specification is global and must appear in
unrestricted vertical mode.
* Page 139, change lines -15 and -16 to read:
! Argument of <control sequence> has an extra }.
Some argument to the specified macro has more }'s than {'s. Proceed, and
* Page 198, line 14, change "[1,3]" to "[TEX,SYS]"
* You can \unskip in restricted vertical mode as well as horizontal mode.
* The hyphenation algorithm has been improved. On page 180, line -11,
change "350" to "310"; later on in that paragraph change "in-form-ant"
and "in-for-ma-tion" to "ex-press-ible" and "ex-pres-sion", respectively.
(Since some dictionaries accept "in-for-mant", it is no longer an exception!)
The suffix removal rules at the bottom on page 180 should now read:
A permissible hyphen is inserted if the word ends with -able or -ably (unless
preceded by c, f,g, p, r, et, it, ot, tt, or ut), -ary (preceded by ion),
-cal, ..., -nary (unless preceded by io), -ogy, ...
Change line 7 of page 181 to read:
"is preceded by three or fewer letters, break -ing only if one of the preceding
letters is a vowel. Otherwise if ing"
Insert -ably between -able and -ary on line 13.
Insert f between c and h on line 20.
The exception dictionary is now extensively changed; the new exceptions will
not be listed here. On page 186 line 8, "been also" should say just "also".